package com.ruoyi.ds.domain;

import com.fasterxml.jackson.annotation.JsonFormat;
import com.ruoyi.common.annotation.Excel;
import com.ruoyi.common.core.domain.BaseEntity;
import org.apache.commons.lang3.builder.ToStringBuilder;
import org.apache.commons.lang3.builder.ToStringStyle;

import java.util.Date;

/**
 * 供应商发货跟踪对象 ds_supplier_track
 * 
 * @author miki
 * @date 2025-05-01
 */
public class DsSupplierTrack extends BaseEntity
{
    private static final long serialVersionUID = 1L;

    /** 自增主键ID */
    @Excel(name = "ID")
    private Long id;

    /** 项目号 */
    @Excel(name = "项目号")
    private String projectNo;

    /** 项目负责人 */
    @Excel(name = "项目负责人")
    private String projectManager;

    /** 供应商ID */
    @Excel(name = "供应商ID")
    private String supplierId;

    /** 供应商 */
    @Excel(name = "供应商")
    private String supplier;

    /** 产品号 */
    @Excel(name = "产品号")
    private String productCode;

    /** 产品型号 */
    @Excel(name = "产品型号")
    private String productModel;

    /** 数量 */
    @Excel(name = "数量")
    private Long productNum;

    /** 币种 */
    @Excel(name = "币种")
    private String currency;

    /** 发货地 */
    @Excel(name = "发货地")
    private String placeShipment;

    /** 预计到货时间 */
    @Excel(name = "预计到货时间")
    private String expectedArrivalDate;

    /** 实际到货时间 */
    @Excel(name = "实际到货时间")
    private String actualArrivalDate;

    /** 供应商提供货物照片 */
    //@Excel(name = "供应商提供货物照片", cellType = Excel.ColumnType.IMAGE, width = 20, height = 20)
    private String shippingDocPhoto;

    /** 供应商提供箱单 */
    //@Excel(name = "供应商提供箱单", cellType = Excel.ColumnType.IMAGE, width = 20, height = 20)
    private String supplierPackingList;

    /** 供应商发货信息 */
    //@Excel(name = "供应商发货信息")
    private String supplierLogistics;

    /** 跟单验货照片 */
    @Excel(name = "跟单验货照片", cellType = Excel.ColumnType.IMAGE, width = 20, height = 20)
    private String supplierPhotoUrl;

    /** 发货单号 */
    @Excel(name = "发货单号")
    private String logisticsTrackingNo;

    /** 跟单验货箱单 */
    //@Excel(name = "跟单验货箱单", cellType = Excel.ColumnType.IMAGE, width = 20, height = 20)
    private String supplierPackingListUrl;

    /** 仓库编码 */
    @Excel(name = "仓库编码")
    private String warehouseCode;

    /** 发货仓库 */
    @Excel(name = "发货仓库")
    private String warehouse;

    /** 发货数量 */
    @Excel(name = "发货数量")
    private Long shippedQuantity;

    /** 备注 */
    @Excel(name = "备注")
    private String remarks;


    /** 创建时间 */
    @JsonFormat(pattern = "yyyy-MM-dd")
    @Excel(name = "创建时间", width = 30, dateFormat = "yyyy-MM-dd")
    private Date createdAt;

    /** 更新时间 */
    @JsonFormat(pattern = "yyyy-MM-dd")
    @Excel(name = "更新时间", width = 30, dateFormat = "yyyy-MM-dd")
    private Date updatedAt;

    /** 供应商上传货物照片(Y-已上传,N-未上传) */
    private String supplierPhotoStatus;

    /** 实际箱号 */
    private String actualContainerNo;



    public void setId(Long id) 
    {
        this.id = id;
    }

    public Long getId() 
    {
        return id;
    }
    public void setProjectNo(String projectNo) 
    {
        this.projectNo = projectNo;
    }

    public String getProjectNo() 
    {
        return projectNo;
    }
    public void setProjectManager(String projectManager) 
    {
        this.projectManager = projectManager;
    }

    public String getProjectManager() 
    {
        return projectManager;
    }
    public void setSupplierId(String supplierId) 
    {
        this.supplierId = supplierId;
    }

    public String getSupplierId() 
    {
        return supplierId;
    }
    public void setSupplier(String supplier) 
    {
        this.supplier = supplier;
    }

    public String getSupplier() 
    {
        return supplier;
    }
    public void setExpectedArrivalDate(String expectedArrivalDate)
    {
        this.expectedArrivalDate = expectedArrivalDate;
    }

    public String getExpectedArrivalDate()
    {
        return expectedArrivalDate;
    }
    public void setProductCode(String productCode) 
    {
        this.productCode = productCode;
    }

    public String getProductCode() 
    {
        return productCode;
    }
    public void setProductModel(String productModel) 
    {
        this.productModel = productModel;
    }

    public String getProductModel() 
    {
        return productModel;
    }
    public void setActualArrivalDate(String actualArrivalDate)
    {
        this.actualArrivalDate = actualArrivalDate;
    }

    public String getActualArrivalDate()
    {
        return actualArrivalDate;
    }
    public void setSupplierPhotoStatus(String supplierPhotoStatus) 
    {
        this.supplierPhotoStatus = supplierPhotoStatus;
    }

    public String getSupplierPhotoStatus() 
    {
        return supplierPhotoStatus;
    }
    public void setProductNum(Long productNum) 
    {
        this.productNum = productNum;
    }

    public Long getProductNum() 
    {
        return productNum;
    }
    public void setSupplierPhotoUrl(String supplierPhotoUrl) 
    {
        this.supplierPhotoUrl = supplierPhotoUrl;
    }

    public String getCurrency() {
        return currency;
    }

    public void setCurrency(String currency) {
        this.currency = currency;
    }

    public String getPlaceShipment() {
        return placeShipment;
    }

    public void setPlaceShipment(String placeShipment) {
        this.placeShipment = placeShipment;
    }

    public String getSupplierPhotoUrl()
    {
        return supplierPhotoUrl;
    }

    public void setLogisticsTrackingNo(String logisticsTrackingNo)
    {
        this.logisticsTrackingNo = logisticsTrackingNo;
    }

    public String getLogisticsTrackingNo()
    {
        return logisticsTrackingNo;
    }
    public void setSupplierPackingList(String supplierPackingList)
    {
        this.supplierPackingList = supplierPackingList;
    }

    public String getSupplierPackingList()
    {
        return supplierPackingList;
    }
    public void setSupplierPackingListUrl(String supplierPackingListUrl) 
    {
        this.supplierPackingListUrl = supplierPackingListUrl;
    }

    public String getSupplierPackingListUrl() 
    {
        return supplierPackingListUrl;
    }
    public void setSupplierLogistics(String supplierLogistics) 
    {
        this.supplierLogistics = supplierLogistics;
    }

    public String getSupplierLogistics() 
    {
        return supplierLogistics;
    }
    public void setShippingDocPhoto(String shippingDocPhoto) 
    {
        this.shippingDocPhoto = shippingDocPhoto;
    }

    public String getShippingDocPhoto() 
    {
        return shippingDocPhoto;
    }
    public void setActualContainerNo(String actualContainerNo) 
    {
        this.actualContainerNo = actualContainerNo;
    }

    public String getActualContainerNo() 
    {
        return actualContainerNo;
    }

    public void setWarehouseCode(String warehouseCode) 
    {
        this.warehouseCode = warehouseCode;
    }

    public String getWarehouseCode() 
    {
        return warehouseCode;
    }
    public void setRemarks(String remarks) 
    {
        this.remarks = remarks;
    }

    public String getRemarks() 
    {
        return remarks;
    }
    public void setWarehouse(String warehouse) 
    {
        this.warehouse = warehouse;
    }

    public String getWarehouse() 
    {
        return warehouse;
    }
    public void setCreatedAt(Date createdAt) 
    {
        this.createdAt = createdAt;
    }

    public Date getCreatedAt() 
    {
        return createdAt;
    }
    public void setShippedQuantity(Long shippedQuantity) 
    {
        this.shippedQuantity = shippedQuantity;
    }

    public Long getShippedQuantity() 
    {
        return shippedQuantity;
    }
    public void setUpdatedAt(Date updatedAt) 
    {
        this.updatedAt = updatedAt;
    }

    public Date getUpdatedAt() 
    {
        return updatedAt;
    }

    @Override
    public String toString() {
        return new ToStringBuilder(this,ToStringStyle.MULTI_LINE_STYLE)
            .append("id", getId())
            .append("projectNo", getProjectNo())
            .append("projectManager", getProjectManager())
            .append("supplierId", getSupplierId())
            .append("supplier", getSupplier())
            .append("expectedArrivalDate", getExpectedArrivalDate())
            .append("productCode", getProductCode())
            .append("productModel", getProductModel())
            .append("actualArrivalDate", getActualArrivalDate())
            .append("supplierPhotoStatus", getSupplierPhotoStatus())
            .append("productNum", getProductNum())
            .append("currency", getCurrency())
            .append("placeShipment", getPlaceShipment())
            .append("supplierPhotoUrl", getSupplierPhotoUrl())
            .append("supplierPackingList", getSupplierPackingList())
            .append("supplierPackingListUrl", getSupplierPackingListUrl())
            .append("supplierLogistics", getSupplierLogistics())
            .append("shippingDocPhoto", getShippingDocPhoto())
            .append("actualContainerNo", getActualContainerNo())
            .append("logisticsTrackingNo", getLogisticsTrackingNo())
            .append("warehouseCode", getWarehouseCode())
            .append("remarks", getRemarks())
            .append("warehouse", getWarehouse())
            .append("createdAt", getCreatedAt())
            .append("shippedQuantity", getShippedQuantity())
            .append("updatedAt", getUpdatedAt())
            .toString();
    }
}
